package com.data1.web.controller;

import cn.dev33.satoken.annotation.SaIgnore;
import cn.dev33.satoken.stp.SaTokenInfo;
import cn.dev33.satoken.stp.StpUtil;
import com.data1.common.core.domain.model.PasswordLoginBody;
import com.data1.common.core.exception.ServiceException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import com.data1.common.core.domain.R;
import org.springframework.web.bind.annotation.*;

/**
 * 认证
 *
 * @author luffyxin
 */
@Slf4j
@SaIgnore
@RequiredArgsConstructor
@RestController
@RequestMapping("/auth")
public class AuthController {

    /**
     * 登录方法
     *
     * @param body 登录信息
     * @return 结果
     */
    @PostMapping("/login")
    public R<SaTokenInfo> login(@RequestBody PasswordLoginBody body) {
        if (body.getUsername().equals("admin") && body.getPassword().equals("12345")) {
            StpUtil.login(body.getUsername());
            SaTokenInfo tokenInfo = StpUtil.getTokenInfo();
            return R.ok(tokenInfo);
        } else {
            throw new ServiceException("账号密码错误");
        }
    }


    /**
     * 退出登录
     */
    @PostMapping("/logout")
    public R<Void> logout() {
        StpUtil.logout();
        return R.ok("退出成功");
    }


}
